The present invention relates to industrial controllers for the real-time control of equipment used in manufacturing and in particular to an industrial controller that automatically organizes equipment for the manufacture of a product based on the capabilities of the equipment.
Industrial controllers are special purpose computers used in controlling industrial processes. Under the direction of a stored control program, an industrial controller examines a series of inputs reflecting the status of the controlled process and changes a series of outputs controlling the industrial process. The inputs and outputs may be binary, that is, on or off, or analog, providing a value within a continuous range. The inputs may be obtained from sensors attached to the controlled equipment and the outputs may be signals to actuators on the controlled equipment.
Unlike the standardized software normally executed on conventional computers, the control program executed on an industrial controller is normally unique to each controlled process. The writing and troubleshooting of the control program is thus a significant cost in the creation of an industrial control system. After the controlled program is complete, it must often be modified as the product to be manufactured changes or as equipment is exchanged, replaced or repaired.
The above referenced grand-parent to this application describes a self-configuring industrial control system employing a number of autonomous control units, each associated with a particular piece of manufacturing equipment. The autonomous control units are programmed with data describing the capabilities of their equipment and the equipment""s ability to interact with other equipment. A desired product is described in a xe2x80x9cjob description language and broadcast to the autonomous control units, each which identifies portions of the job that they can complete. The autonomous control units then exchange bids and counter-bids with the other autonomous control units to allocate the job among units and to select the desired operating parameters of the associated equipment. The autonomous control units are programmed with generalized goals so that the allocation may be further optimized for high productivity, low cost or some other objective measure.
The above referenced parent to this application describes an improvement to this bidding process in which each autonomous control unit exchanges intermediate constraints, that is, their common ranges of inputs and outputs, with upstream and downstream equipment. By importing these constraint ranges into the autonomous control units, the process of bidding can be simplified and shortened because each autonomous control unit can pre-evaluate its bids against the ranges before they are submitted, preventing unacceptable bids from being further processed.
Determining whether a bid is acceptable, assuming it meets the intermediate constraint ranges, can be difficult because the bids usually propose input values to the receiving autonomous control unit, whereas the outputs of the equipment, resulting from the bid inputs, may determine the acceptability of the bid according to whether the outputs remain within their constraint ranges. The equipment outputs may be constrained by the intermediate constraint ranges that the equipment shares with its downstream neighbors resulting from physical limits in the equipment""s capabilities or from the job description which may describe desired outputs of individual pieces of equipment. Because the outputs of the equipment may be a function of several inputs, the validity of a bid input cannot be determined by comparison of the input to a fixed range of acceptable input values.
The present invention provides a simple protocol for accepting or rejecting bids by applying the bids as inputs to the model of a particular piece of equipment and accepting the bids if the outputs from the model fall within the output constraints. The constraints may be those defined by the job plan or may be intrinsic to a machine or to machines which are connected to a machine. Within this protocol of rejection or acceptance of a bid, counterbids may be made in response to bids that propose acceptable but non-optimal input values.
Specifically then, the present invention provides an autonomous control unit forming part of an industrial controller for controlling a process made up of sub-processes, the autonomous control unit associated with a sub-process and used with other autonomous control units associated with other sub-processes, each sub-process having input variables describing input values to the sub-process and output variables describing corresponding output values of the sub-process. Each autonomous control unit includes a network connection allowing intercommunication between autonomous control units and the receipt by the autonomous control unit of a job plan describing the process. The autonomous control units also include an electronic memory holding a sub-process model relating the input variables to the output variables for the sub-process of the autonomous control unit. Also, the electronic memory includes a constraint table holding a constraining range for the output variables of the sub-process. The autonomous control unit also includes an electronic computer communicating with the network connection and the electronic memory, and executing a stored program to receive the job and receive a bid from a second autonomous control unit describing a proposed value of input variables of the sub-process of the autonomous control unit. The program further determines corresponding values of output variables using the model and, when the output variables satisfy the constraint ranges of the sub-process, responds to the second autonomous control unit accepting the proposed value of the variable as part of response to the job plan. On the other hand when the output variables do not satisfy the constraint range, the execution of the stored program causes a responding to the second autonomous control unit rejecting the proposed value of the input variables.
Thus it is one object of the invention to provide for a relatively simple protocol to determine whether a bid is acceptable or not. A bid is acceptable if its resulting output values when modeled do not violate any of the known constraints.
The constraints of the sub-process may represent at least one of the restraints imposed by the job plan or the physical operation of the sub-process of the first autonomous control unit or the physical operation of a sub-process associated with a third autonomous control unit communicating with the sub-process of the first autonomous control unit.
Thus it is another object of the invention to provide for multiple sources of constraints to be used in this simple protocol. The constraint may be simply that of the job plan defining, for example, the goods to be manufactured, or may result from physical constraints on the equipment associated with the autonomous control units or those of upstream or downstream autonomous control units.
The autonomous control unit may respond to the second autonomous control unit indicating alternative input variables when the output variables satisfy the constraint ranges.
Thus it is another object of the invention to permit within this protocol a counter-bidding in which the autonomous control unit can indicate preferable input values other than those bids based on its internal optimizing function.
The autonomous control unit executing the stored program may identify whether the proposed input variables are xe2x80x9cpreliminary or xe2x80x9cfinalxe2x80x9d and may respond to the second autonomous control unit indicating an alternative input variable optimized by the autonomous control unit only when the proposed input variables are preliminary.
Thus it is another object of the invention to provide for different classes of bids so as to allow or curtail counter-bidding according to the originator of the bid.
The autonomous control unit executing the stored program may, when the output variable satisfies the constraints of the job plan, send a bid to a third autonomous control unit proposing the output variables as preliminary input variables to the third autonomous control unit.
Thus it is another object of the invention to permit a successful bid to cause the propagation of additional bids to other autonomous control units.
The messages between the autonomous control units may be contained in message wrappers identifying the input variables as preliminary or final and the message wrappers may make use of protocols of the standard agent language such as, but not limited to, KQML.
Thus it is another object of the invention to make use of existing agent communication protocols for an industrial process that is self-organized.
The foregoing and other objects and advantages of the invention will appear from the following description. In the description, reference is made to the accompanying drawings which form a part hereof and in which there is shown by way of illustration a preferred embodiment of the invention. Such embodiment does not necessary represent the full scope of the invention, however, and reference must be made to the claims herein for interpreting the scope of the invention.